#include "bwidget.h"
#include <QScreen>

BWidget::BWidget(QWidget *parent)
    : QWidget{parent}
    , w_ratio{screen()->availableSize().width() / DevEnv::A_WIDTH}
    , h_ratio{screen()->availableSize().height() / DevEnv::A_HEIGHT}
{

}

double BWidget::ratio() const
{
    return w_ratio;
}

double BWidget::wratio() const
{
    return w_ratio;
}

double BWidget::hratio() const
{
    return h_ratio;
}

void BWidget::resize(const QSize &s)
{
    resize(s.width(), s.height());
}

void BWidget::resize(int w, int h)
{
    QWidget::resize(w * w_ratio, h * h_ratio);
}

void BWidget::setFixedHeight(int h)
{
    QWidget::setFixedHeight(h * h_ratio);
}

void BWidget::setFixedSize(const QSize &s)
{
    setFixedSize(s.width(), s.height());
}

void BWidget::setFixedSize(int w, int h)
{
    QWidget::setFixedSize(w * w_ratio, h * h_ratio);
}

void BWidget::setFixedWidth(int w)
{
    QWidget::setFixedWidth(w * w_ratio);
}

void BWidget::setMaximumHeight(int maxh)
{
    QWidget::setMaximumHeight(maxh * h_ratio);
}

void BWidget::setMaximumSize(const QSize &s)
{
    setMaximumSize(s.width(), s.height());
}

void BWidget::setMaximumSize(int maxw, int maxh)
{
    QWidget::setMaximumSize(maxw * w_ratio, maxh * h_ratio);
}

void BWidget::setMaximumWidth(int maxw)
{
    QWidget::setMaximumWidth(maxw * w_ratio);
}

void BWidget::setMinimumHeight(int minh)
{
    QWidget::setMinimumHeight(minh * h_ratio);
}

void BWidget::setMinimumSize(const QSize &s)
{
    setMinimumSize(s.width(), s.height());
}

void BWidget::setMinimumSize(int minw, int minh)
{
    QWidget::setMinimumSize(minw * w_ratio, minh * h_ratio);
}

void BWidget::setMinimumWidth(int minw)
{
    QWidget::setMinimumWidth(minw * w_ratio);
}

BGroupBox::BGroupBox(QWidget *parent)
    : QGroupBox{parent}
    , w_ratio{screen()->availableSize().width() / DevEnv::A_WIDTH}
    , h_ratio{screen()->availableSize().height() / DevEnv::A_HEIGHT}
{

}

BGroupBox::BGroupBox(const QString &title, QWidget *parent)
    : QGroupBox{title, parent}
    , w_ratio{screen()->availableSize().width() / DevEnv::A_WIDTH}
    , h_ratio{screen()->availableSize().height() / DevEnv::A_HEIGHT}
{

}

double BGroupBox::ratio() const
{
    return w_ratio;
}

void BGroupBox::resize(const QSize &s)
{
    resize(s.width(), s.height());
}

void BGroupBox::resize(int w, int h)
{
    QWidget::resize(w * w_ratio, h * h_ratio);
}

void BGroupBox::setFixedHeight(int h)
{
    QWidget::setFixedHeight(h * h_ratio);
}

void BGroupBox::setFixedSize(const QSize &s)
{
    setFixedSize(s.width(), s.height());
}

void BGroupBox::setFixedSize(int w, int h)
{
    QWidget::setFixedSize(w * w_ratio, h * h_ratio);
}

void BGroupBox::setFixedWidth(int w)
{
    QWidget::setFixedWidth(w * w_ratio);
}

void BGroupBox::setMaximumHeight(int maxh)
{
    QWidget::setMaximumHeight(maxh * h_ratio);
}

void BGroupBox::setMaximumSize(const QSize &s)
{
    setMaximumSize(s.width(), s.height());
}

void BGroupBox::setMaximumSize(int maxw, int maxh)
{
    QWidget::setMaximumSize(maxw * w_ratio, maxh * h_ratio);
}

void BGroupBox::setMaximumWidth(int maxw)
{
    QWidget::setMaximumWidth(maxw * w_ratio);
}

void BGroupBox::setMinimumHeight(int minh)
{
    QWidget::setMinimumHeight(minh * h_ratio);
}

void BGroupBox::setMinimumSize(const QSize &s)
{
    setMinimumSize(s.width(), s.height());
}

void BGroupBox::setMinimumSize(int minw, int minh)
{
    QWidget::setMinimumSize(minw * w_ratio, minh * h_ratio);
}

void BGroupBox::setMinimumWidth(int minw)
{
    QWidget::setMinimumWidth(minw * w_ratio);
}


BMainWindow::BMainWindow(QWidget *parent)
    : QMainWindow{parent}
    , w_ratio{screen()->availableSize().width() / DevEnv::A_WIDTH}
    , h_ratio{screen()->availableSize().height() / DevEnv::A_HEIGHT}
{

}

double BMainWindow::ratio() const
{
    return w_ratio;
}


void BMainWindow::resize(const QSize &s)
{
    resize(s.width(), s.height());
}

void BMainWindow::resize(int w, int h)
{
    QWidget::resize(w * w_ratio, h * h_ratio);
}
